In related U.S. patent application Ser. Nos. 10/924,652 and 10/668,833, time-dependent data storage and recovery techniques are disclosed. Embodiments of such techniques provide solutions for continuous data protection (CDP) wherein all write commands directed to a storage system are intercepted by a storage management system having a current store and a time store. The current store may maintain or have access to a current (or mirror) copy of the storage system digital content. In one embodiment, the current store may be presented to the storage system as primary volumes. In another embodiment, the current store may be presented as secondary volumes, which are referred to as “TimeSafe volumes.” The time store may record information associated with each intercepted write command, such as new data in the write command's payload or old data to be overwritten in response to the write command. Recordation of the new or old data in response to a write command may be referred to as a copy-on-write (COW) operation, and the new and/or old data recorded may be referred to as COW data. The time store may also record other information (i.e., metadata) associated with an intercepted write command and/or the corresponding COW operation, such as, for example, a timestamp, an original location in the current store (or TimeSafe volumes) where the old data are overwritten, and a destination location in the time store to which the COW data are copied.
FIG. 1 shows a system diagram illustrating an exemplary time-dependent storage management system 10 in relation to a storage system 12 and hosts/servers 102. The storage system 12 presents primary volumes 104 to the hosts/servers 102, and a current store 108 in the storage management system 10 presents TimeSafe volumes (secondary volumes) 106 to the hosts/servers 102. When the primary volumes 104 receive input/output (I/O) requests from the hosts/servers 102, write requests may be simultaneously forwarded to or intercepted by the storage management system 10. COW operations may cause backup data to be recorded in a time store 110 in the storage management system 10, and a mirror/current copy of the digital content of the storage system 12 may be maintained in the current store 108.
Each COW operation typically backs up one or more blocks of COW data, thereby creating one set of COW data and corresponding metadata. Over a period of time, multiple sets of COW data and corresponding metadata (including timestamps) may be accumulated as a collection of historical records of what has been written or overwritten in the current store 108 or the storage system 12. The content of the time store 110 may be further indexed (e.g., in “indexing tables”) based on the metadata to facilitate efficient access to the COW data.
With a current copy of the digital content of the storage system 12 in the current store 108 and the historical records in the time store 110, the storage management system 10 adds a new dimension, i.e., time, to the storage system 12. Assuming the storage management system has been operatively coupled to the storage system since a past time, the storage management system 10 may quickly and accurately restore any addressable content in the storage system 12 to any point in time between the past time and a present time. For example, the storage management system 10 may be capable of providing a copy of the digital content of the storage system 12 (or a portion thereof) that existed at a specified past time T1. The copy at time T1 may be presented in the form of a virtual disk known as a “time image.” The storage management system 10 may also be capable of instantly restoring the storage system 12 (or a portion thereof) to a state as it existed at a specified past time T2, which operation is referred to as an “instant restore.” The instant restore may be either non-destructive or destructive depending on whether the data overwritten during the restoration are recorded in the time store 110 or discarded. A time image or a TimeSafe LUN (logical unit) in an instant restore mode may continue to receive I/O requests, such as reads and writes. Such I/O requests may be referred to as “time image reads” and “time image writes” if directed to a time image, or “instant restore reads” and “instant restore writes” if directed to a TimeSafe LUN in an instant restore mode.
There are a wide variety of implementation options for the above-described CDP method. FIG. 2 shows one exemplary implementation wherein a storage management system 206 is operatively coupled to both a host 202 and a storage system 204. The storage management system 206 may or may not be positioned in a critical data path 20 between the host 202 and the storage system 204. If it is not in the critical data path 20, the storage management system 206 may be switched into a “capture mode” whenever it is desirable for it to intercept communications between the host 202 and the storage system 204. The storage management system 206 is typically implemented with a hardware appliance having one or more processor modules 208, wherein each processor module 208 performs a series of operations such as, for example, data interception, data replication, record creation, and metadata indexing.
The above-described hardware-based implementation of time-dependent storage management is highly dependent upon specifics of underlying operating systems and/or hardware configurations. Such hardware dependencies often lead to compatibility and interoperability issues that limit the environments in which such a hardware-based storage management system may be deployed. Due to platform-specific restrictions, the time-dependent data storage and recovery functionalities may not be portable to different platforms and may not be easily adapted to system/hardware upgrades.
In view of the foregoing, it would be desirable to provide a solution for data storage management which overcomes the above-described inadequacies and shortcomings.